d={'hello':10,'word':20,'python':30}
#访问字典中的元素
#（1）使用d[key]
print(d['hello'])
#(2)d.get(key)
print(d.get('hello'))
#二者之间的区别：如果key不存在，d[key]报错而d.get[key]指定默认值
#print(d['java'])#KeyError10
print(d.get('java'))#None
print(d.get('java'),'不存在')


#字典遍历
for item in d.items():
    print(item)#key=value组成的一个元素

#在使用for循环遍历时，分别获取key，value
for key,value in d.items():
    print(key,'--->',value)

#字典的相关操作
d={1001:'limei',1002:'wanghua',1003:'zhangsan'}
print(d)
#向字典中添加元素
d[1004]='lalo'
print(d)

#获取字典中的所有元素
keys=d.keys()
print(keys)
#dict_keys([1001, 1002, 1003, 1004])
print(list(keys))
print(tuple(keys))
#[1001, 1002, 1003, 1004]
#(1001, 1002, 1003, 1004)


values=d.values()
print(values)
#dict_values(['limei', 'wanghua', 'zhangsan', 'lalo'])
print(list(values))
print(tuple(values))
#['limei', 'wanghua', 'zhangsan', 'lalo']
#('limei', 'wanghua', 'zhangsan', 'lalo')


#将字典中的数据转成key-value的形式，以元组的方式进行展现
lst=list(d.items())
print(lst)
#[(1001, 'limei'), (1002, 'wanghua'), (1003, 'zhangsan'), (1004, 'lalo')]
d=dict(lst)
print(d)
#{1001: 'limei', 1002: 'wanghua', 1003: 'zhangsan', 1004: 'lalo'}


#使用pop元素删除字典中的元素
print(d.pop(1001))
print(d)
print(d.pop(1006,'不存在'))

#随机删除
print(d.popitem())
print(d)

#清空字典中的所以元素
d.clear()
print(d)
print(bool(d))#False
#每个对象都有一个bool值


#字典生成式
import random
d={item:random.randint(1,100) for item in range(4)}
print(d)
#{0: 9, 1: 24, 2: 69, 3: 2}

#创建两个列表
lst=[1001,1002,1003]
lst2=['chengmm','wangyy','guss']
d={key:value for key,value in zip(lst,lst2)}
print(d)
#第一列表的元素去做键，第二列表元素去做值
#{1001: 'chengmm', 1002: 'wangyy', 1003: 'guss'}